package Year22_Month05.day18;


import java.util.Stack;

public class 删除字符串中所有的相邻重复项__栈的使用 {
    public static String removeDuplicates(String s) {
        char[] arr = s.toCharArray();
        //用一个栈来实现题目要求
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < arr.length; i++) {
            //如果说栈为空或者说栈顶元素和当前下标元素不同就入栈
            if(stack.empty() || stack.peek() != arr[i]){
                stack.push(arr[i]);
            }else{//相同就出栈
                stack.pop();
            }
        }
        //最后定义一个字符拼接器来接收结果
        StringBuilder str = new StringBuilder();
        while(!stack.empty()) str.append(stack.pop());
        //接收完之后返回的时候别忘了反转一下
        return str.reverse().toString();
    }

    public static void main(String[] args) {
        String a = "abbaca";
        System.out.println(removeDuplicates(a));
    }
}
